package fr.skolian.model
{
	import flash.events.EventDispatcher;
	import flash.events.IEventDispatcher;
	import flash.filesystem.File;
	import flash.utils.Dictionary;
	
	import fr.skolian.model.vo.Directory;
	import fr.skolian.model.vo.Media;
	import fr.skolian.model.vo.Medias;
	
	
/*Skolian - Content management system for primary school - Copyright (c) 2011 - Olivier Gianotti - This file is part of Skolian. Skolian is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Skolian is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Skolian.  If not, see <http://www.gnu.org/licenses/>.
contact : ogianotti@gmail.com 

Skolian - Application de gestion de contenus pédagogiques en école primaire. Copyright (C) 2011 - Olivier Gianotti - Ce fichier est une partie de Skolian. Skolian est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier au titre des clauses de la Licence Publique Générale GNU, telle que publiée par la Free Software Foundation ; soit la version 2 de la Licence, ou (à votre discrétion) une version ultérieure quelconque. Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même une garantie implicite de COMMERCIABILITE ou DE CONFORMITE A UNE UTILISATION PARTICULIERE. Voir la Licence Publique Générale GNU pour plus de détails. Vous devriez avoir reçu un exemplaire de la Licence Publique Générale GNU avec ce programme ; si ce n'est pas le cas, consultez <http://www.gnu.org/licenses/>.
contact : ogianotti@gmail.com 
*/

public class Model extends EventDispatcher
	{
		private var _owner:String;
		private var _root:File;
		
//		private var _tags:Tags;
		private var _medias:Medias;
		private var _directory:Directory;
		private var _orphansMedias:Dictionary;
		
		public function Model()
		{
			super();
		}
		
		public function get owner():String
		{
			return _owner;
		}
		
		public function set owner(value:String):void
		{
			_owner = value;
		}
		
		public function get root():File
		{
			return _root;
		}

		public function set root(value:File):void
		{
			_root = value;
		}
		
		public function setMedias(data:Array):void
		{
			_medias = new Medias();
			_medias.addMedias(data);
			
		}
		
		public function setTags(data:Array):void
		{
			if(!_medias)return;
			_medias.addTags(data);
			
		}
		
		public function setDirectory():void
		{
			_directory = new Directory(_root);
		}
		
		public function setOrphans():void
		{
			for each( var media:Media in _medias ){
				if(_directory.globalListing[_orphansMedias] == undefined){
					_orphansMedias[media.id] = media;
				}
			}
			
		}

		public function get orphansMedias():Dictionary
		{
			return _orphansMedias;
		}

		public function get directory():Directory
		{
			return _directory;
		}

		public function set directory(value:Directory):void
		{
			_directory = value;
		}


	}
}